{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import os\n",
    "import json\n",
    "import warnings\n",
    "import itertools\n",
    "\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "# from sklearn.gaussian_process.kernels import Matern\n",
    "from GPy.mappings.constant import Constant\n",
    "from GPy.kern import Matern52\n",
    "from GPy.models import GPRegression\n",
    "\n",
    "from scipy.special import ndtr\n",
    "from scipy.stats import norm\n",
    "\n",
    "warnings.filterwarnings('ignore')\n",
    "# plt.style.use('classic')\n",
    "plt.style.use('seaborn-paper')\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "scrolled": true
   },
   "outputs": [],
   "source": [
    "# plotting styles\n",
    "\n",
    "def nnsvm(rcParams, i=0):\n",
    "    rcParams['font.family'] = 'serif'\n",
    "    rcParams['font.serif'] = 'Ubuntu'\n",
    "    rcParams['font.monospace'] = 'Ubuntu Mono'\n",
    "    rcParams['font.size'] = 12 + i\n",
    "    rcParams['axes.labelsize'] = 12 + i\n",
    "    rcParams['axes.labelweight'] = 'normal'\n",
    "    rcParams['xtick.labelsize'] = 10 + i\n",
    "    rcParams['ytick.labelsize'] = 10 + i\n",
    "    rcParams['legend.fontsize'] = 12 + i\n",
    "    rcParams['figure.titlesize'] = 14 + i\n",
    "    rcParams['lines.linewidth']= 2.7\n",
    "    rcParams['axes.titlesize'] = 14 + i\n",
    "alpha_plt = 0.4 # beautification\n",
    "    \n",
    "# gifs stuff\n",
    "gifDir = 'MAB_gifs'\n",
    "os.makedirs(gifDir, exist_ok=True)\n",
    "delay = 80"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.gca().grid()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "SPINE_COLOR = 'gray'\n",
    "\n",
    "def format_axes(ax):\n",
    "    \n",
    "    for spine in ['top', 'right']:\n",
    "        ax.spines[spine].set_visible(False)\n",
    "\n",
    "    for spine in ['left', 'bottom']:\n",
    "        ax.spines[spine].set_color(SPINE_COLOR)\n",
    "        ax.spines[spine].set_linewidth(0.5)\n",
    "\n",
    "    ax.xaxis.set_ticks_position('bottom')\n",
    "    ax.yaxis.set_ticks_position('left')\n",
    "\n",
    "    for axis in [ax.xaxis, ax.yaxis]:\n",
    "        axis.set_tick_params(direction='out', color=SPINE_COLOR)\n",
    "        \n",
    "    ax.grid(alpha=0.25)\n",
    "\n",
    "    return ax"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "def f(x):\n",
    "    \"\"\"The function to predict.\"\"\"\n",
    "    return 2*((x-3)*np.sin((x-3))) + 2 + 0.5*x"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "nnsvm(plt.rcParams, -2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "x = np.atleast_2d(np.linspace(0, 6, 600)).T"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "scrolled": false
   },
   "outputs": [],
   "source": [
    "# kernel = Matern(length_scale=1.0)\n",
    "# kernel = None\n",
    "\n",
    "y_pred, sigma = 5*np.ones(x.shape).flatten(), 1.1*np.ones(x.shape).flatten()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "train_X = np.atleast_2d([0.5, 0.12]).T\n",
    "train_y = f(train_X)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [],
   "source": [
    "def gp_creator(x, y, val = 5):\n",
    "    y.resize(x.shape[0], 1)\n",
    "    ker = Matern52(x.shape[1], ARD=True, variance=1)\n",
    "#     print (x, x.mean())\n",
    "    mean_fn = Constant(x.shape[1], 1, value=val)\n",
    "    gp = GPRegression(x, y, kernel=ker, noise_var=0,\n",
    "                      mean_function = mean_fn)\n",
    "    gp.optimize()\n",
    "    return gp"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Create Posterior"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7f5df8c72278>"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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xFf4qRNU2VdXC7FgQQz27/eEYYjO7wYDsH+/J+bPj6FEb3uU5AkhQ1I1q5CzKQeAcQrb3s5lpH8BKQHwifYBAJz6+hS0XVobRzQKBgNwxx0RyM2VD+u43Fw57rgjYsibAmJVlOQJIUNSvqM0JappD02DSELdeQbTt8pe26lF6bcOXGX/6aceOHjQ/Dl6+zpwwBOffWbWGMvbbrstTKFQxPn6+qZGREQkKRSKuHXr1k0w59j333/f69133/Ue6P3c3FzJww8/PKplZuPi4hKTk5MTpk+fHjd37tzo/Px8yUD76nQ6LF68OFyrHfjm7sMPP/QqKysTjyYmc9D/VELIoPRaPY68cQQAIJQIMfW3U20ckWNIvCURh14+BAA4ue0kEhYn2DiiEdq82WfEpXGDAfjoI18sXTrk5PxbtmypAIAlS5aEX3fdda0rVqxoNvdj7r333kEXPklJSdG8/vrro1pmtqOjQ5iVlXVy0qRJus2bN3vee++94ceOHSvub1+RSIQvvviifLDzvfHGGwHBwcGVERERVq3moZI8IWRQhdsKL0x+c1cK5P7Dq7Udr4LSg+AVYZyPvnhHsWkxH4dSVSXEvn0jK8X32r/fczTD655++unA5OTkBIVCEffdd9/JN2zY4KdQKOKioqKSekv6jz32WPDKlSsDASA8PDw5IyMjNiEhIbG39L5z5073WbNmxQDALbfcEp6WlhaflpYWf9VVV0V3dHQwANi6datHenp6fO+5Dx06JB0opuuvv7799OnTrgDw3XffydPS0uLT09Pjf/WrX0U2NzcLAEAikaQDwPr16/3i4+MTFQpFXGpqanx2drZpDuiHHnooTKFQxA1WKzBalOQJIQPinF88bI6msDUbYwwJS4yl9+72bpRnlts2oJE4eFD+i170w9XSIsJPP434zrCkpMT14YcfrlUqlcXz5s3rfPzxxxuUSmXx7t27S15++eVfVMHX1NS4ZGVlncrJyTm5detWv9OnT19UJX727FnJhg0bzuXk5BS5uroaPvzwQ+/GxkbhI488ErZjx45SpVJZHBwc3N3c3NzvdRsMBvz73//2nTJlSqfBYMB9990X+dFHH5UdP368KCEhQbV69erAS+O5+eabm5RKZfEdd9zRuHbt2oDe9956660KpVJZnJycbLWpESnJE0IGVJlVieqjxlrOqHlR8E/yt3FEjiXuxjjTdvH2fmt27VtTk2WadBsbLdY0/NxzzwUoFIq4e+65J6yzs3PAGgKJRMJDQ0M1FRUVA05SEBsbq66srHTJz8+XTJw4sTskJGTQ6pZFixZFZ2RkxObn50s//PDD8traWhEA9CbpOXPmdOTm5soGOj4xMVFdXV09ppMmUJs8IWRAvW3xAE1+MxITMyZC6iuFqlGF4u3F+NU/f+VYQw99fCzTxuDra5HzNDQ0CN98882gmpqaE1KplPdWiQ9EIBCAcz7k+9HR0d3l5eWSxsZGoa+vr16v739V2q+++qp00qRJpmsxGAzgnCM/P3V2Wh8AACAASURBVF+SnJysyczMdJs8eXKXOfG4ubnp6+vrrZ6DqSRPCOlXe027aVpWnxgfRM2LsnFEjkcgEiD2+lgAQHtVO2qza20c0TBdcUUnPD1Hl6C9vHSYObPTEuH4+fnpr7322pbU1NSE6dOnxwUFBXVb4rwhISG6p556qjojIyNOoVDEFRYWyhljA98d9BAIBHj//ffP3HnnnRHp6enxJ0+elK5Zs8asX/Jvf/vbuueeey5UoVDEffvtt26jv4r+scHucsZSZmYmnzNnzoiPb2lpgZeXl+UCshFnuQ6ArsUeDec6MtdkYt/qfQCA6167Dpc9Yl8leUf5nRR+VohPb/kUAHDlqisxZ/WcX+wzymsZddWAUqkMSk5O3i2RSH7Z03vRonBs3+474pPfeGMjvvqqfBThjSmtVovY2Nik3bt3l8TFxVnkJsKaNBqNOD8/f75Coajp730qyRNCfkGv1UP5thIAIJaLkXZPmo0jclxR86IgdDE2HTtku/yyZU0jnodeIADuvLPRsgFZxzXXXBOlUCjipkyZkrBs2bJGR0jw5qA2eULILxR9UYSOmg4AxmFzrl6uQxxBBiJxlyDiqgiU7i5FbXYtWs+1wnPi6EaljamlS9vw1lut2L9/+EHPmtWKJUuGHCNvD/bs2XPa1jFYA5XkCSG/cOTNCx3upv9+ug0jcQ6xN8aatnsX+XEYAgHwySdlSEkZXrt6SkonPv64jFajsy361yeEXKT2RC3OHjgLAAi7Mgz+yTRsbrTiFl4YSndqu10m+VadTjdgr3AEBemxe3cJZs9uHTJpCwTA7Nmt2L27BEFB/XdTJxbT83trHeh9qq4nhFzk6D+Pmran/4FK8ZbgEeqBoPQg1ByvQdmPZdC0ayBxt9okZ8OmUCi6Kisr3wWwXCQS9T/O28cH2L27gn31lbvw44+9BPv3u7OWFlMO4V5eOsPs2e36O+5o4YsWtUMgEECjoYKkFel0uq7m5uZ3FQrFgDdolOQJISaqZhVyP8oFALiHuCNuUdwQRxBzxS6MRc3xGui79Sj7sQzxi+JtHdJFQkNDNyqVyk8ADN72HhMDvPACAt95x8dr//4UQVeXl0Ema2mZPTu3dsWKJgBAoRMsr+sYWgdL8AAleUJIHzmbcqBTGYdFT/3tVAjFtBy4pUQviMa+NcYhiaW7Su0uyQPGEj2AQZOGydtv1wAo6H0qBxBinbDIKIyoKoUxNuDE/YQQx8QNHEffMlbVC8QCpC8fdDIxMkzBU4Mh9TV+dZbuKh10JjZCLMWsJM8Y+/qSl761QiyEEBsq/bYUzaeNq3smLU2CW4DVJuEalwRCAaKviwYAtJ5tRcPJBhtHRMYDc0vy7r0bjDEZAA/rhEMIsZWjb17ocDftD9NsGInzipp/YWrgkl0lNoyEjBeDJnnG2O8ZYyoAlzPGunq2qwFsG5PoxiHOOTrrOlFzvAbnfjqHqiNVaK9uBzdQ1R6xnqbSJlPSCUoPQuhloTaOyDn1luQB4PRup5x7hdiZQTvecc7/CeCfYxTLuKXt0qJ4RzFOfnYS5fvL0XX+l/1eRFIRJl0+CRHXRCD59mR4hdn/nN3EcRz911Gg5z5y2h+mOdZKaQ5E7i9H8NRgVB+rRsX+CnR3dMPFbUxXHiXjjFm96xljEgA3AwhFz2IInPN1VoxrXNC0aXDkn0fw899/Rlf94B1adSodzuw5gzN7zuCHZ35A9PxoXP6nyxE+J3xsgiVOS9ulRc7GHACA1EeK5NuTbRyRc4teEI3qY9XGoXR7yy6aKIcQSzN3CN0WABoARQAM1gtnfOCc4+RnJ/HNH75B5/mLZ4r0mOSBSTMnwSvCCy7uLtCpdWitaEVdXh1qsmuMpS1u7J1buqsUUfOiMG/DPJqVjIxY3uY8qFvUAIApv5kCsVRs44icW/SCaOz/834Axv/HlOSJNZmb5P055zOtGsk4oWnXYPtvtqPw0wuTRYikIqQvT4diuQIuoS4DLjnZ1diFk5+dhPJtJWqOG1cVPP3dabyd/jZmrZyFWStnmVa7IsQcnPML89QzYOrvpto2oHEgZHoIXL1doW5W01A6YnVmT4bDGJuGPusWc86PDLI76UfT6SZ8sugT1BfUm15LX5GOq/58FeT+cgDGdaUHIvOVQbFCgfTl6Tj97Wn8sPIH1GbXwqA1YN+afTi18xRu3XYrvMKpvZ6Y59yhczh/4jwAIPaGWHhHeNs4IucnEAoQNS8KBVsK0FLegsbiRogCaV4yYh3mDqErArAOwNqex8tDHcAYm8UYe5Ex9odRxOc0arJr8N6M90wJ3iPUA/fsvQcL315oSvDmYowhen40VhxbgQVvLIBYbqxerVHW4O30t1G6u9Ti8Q8X5xwGgwF6vR56vR46nW7IR+++BoMBBoMBnHMq5VjZRavN0Tz1YyZ6fp9e9t9TL3tiPWbdPnLO7x/OSRljoTDeDBwHcGYEcTmVamU1Prz2Q6ibje2eEy+fiFs/u3XUk40wAcP0P0xHzPUx2HbrNlQfq4a6WY3NN2zGDW/fgPTfDH/GMr1eD41GA7VaDa1Wa0rQvcm3NxHr9XpTIu9NyJcmZq1WC5FIBMaYWcm6d7/ent2XHscYMz2G8/zS9wZ77dLjBD0rbnV1daGtrW3Ac/c9djg/B3qv7/uCPqt+DRZrf88vPV6r1aK7uxsA0FnbiZOfnQQA+MT4YOKVE6HVaofsWT+cnveW6qXf33kc+SYw4poI0/aZ788g7i5qlyfWYW7v+mkAXgXgwjmfwRi7l3P+/iCHXAlgA+f8M8bYHsbYV5zz5kt3WrNmzQoAKwAgIiJi0KrqobS3t4/4WGtqLGrEp/M/haZVAwCI/FUkFmxcAJ1E1+/1juQ6mDfD4p2Lsf+Z/cjblAeu59jxwA7Un67H9CenX/QFyTlHd3c3VCoVuru7odVqodVqodPpTEm9v8Q3Enq9/qIE48i0Wu2o/j7NdWnSGkkSG+yY3hsvACh7vwwGnbEfre8CXxw5aizVm3NTNtDfRn/HWWs4nk6nM12LI5KHy9FZ3onTe07jTMkZRMZEjug8A/XhIQQwv03+TQC/B7C+5/ldAN4f4pjwnp9qAP32Blu1atU7AN4BgMzMTD7aP1Z7+2PvON+BnXfsNCX4hCUJWPLxkiEX/RjpdSz+z2IEJgbi+ye/BwD8/LefoevSIe3JNKjVaqhUKqjVauj1egiFwl+UAF1cLD9e1xrntBVnuBahUAgXFxcYtAZUf1VtfE0qROTiSIfrVd/d3e3QvxP/DH+UlZdBr9Kjs7gTXtPs6/uLOAdzi1l6zvkxmKbLQP/rDV/wBYAMxti7AI5xzsfdJM06tQ6f3PgJWsqNpb/IayPNSvCjlfhAIma/NhsCkfFXe+wfx5D5Qiaam5uh0WjAGDNVoZPxq3ZvLTSNxpvP0F+FQuzuWAneGfjN8DNt1/5Ua8NIiDMztySf35OwAxljrwPIH2xnznkXgFtGG5wj2/3oblQdqQIA+Cf7Y+mnS62S4LVaLRobG9Ha2orOzk7o9Xp4XOGB9JfToXxKCa7nKN1YCoFYgNjlsRb/fOKYyreWm7bDlobZLpBxzDfdF0zEwHUc5386b+twiJMytyT/OwBHAPwIY0/731ktIieQvyUfyn8rARhnELtj5x1w9XS12Pl1Oh1qampw8uRJ5OTkoKqqCh0dHeCcm9rAA+cEIv2ldDChscR+6u1TqPiiwmIxEMfVWtyKppwmAICvwhce0bTelC2IZCJ4pxiHLDblNUHVrLJxRMQZmZvkb+Kcv8s5/wPn/C0Av7VmUI6suawZO5bvMD2/6b83WWye+ebmZpw6dQrZ2dmoqqpCV1fXoB3bgq4OQtqaNNPz/JfzUXeoziKxEMdV/mm5aZtK8bY1YfoEAAA3cJTvLbdtMMQpmZvkH7nk+a2WDsQZcG7s1d7dbhyilPFEBmJvGF0VuU6nQ1VVFU6cOIHS0lK0t7dDIBCY3aYeMj8ECY8kGOPTcyifVqK1qHVUMRHHpW3TomqXsRnJ1d8VgXMCbRzR+DYhYwI8EzyRsDwBfgl+Qx9AyDAN2ibPGLsMxuFwExljf+p52Q9Dd7wbl5TvKFH2YxkAICAlAFf/9eoRn0ur1aKqqgqNjY2mseMjHY4WeWckVLUqlG8ph16lx7Enj2HWh7Pg4uW4PZPJyFR9XQWDxjhsLuzmMFMHTWIbXklemPXhLMjlckyIn2DrcIgTGup/eDcAVxiHy0l7HrUwrkhnN+xhUozWc634/gnj0DUmZFj0/qIRzSOv0+lQVlaGEydOoLGx0Xi+UfaEZ4wh6bEk+M8yLmKjqlFB+YzSNEaajA/cwHHus3MAACZimLR4ko0jIoRY21DryR+HcdY6u6bValFUVISoqCj4+9tmNbbvn/ge3R3GavornrkCQVOChnW8Xq9HVVUVKisrIZFILD7EjQkZpvx5Cg7efRCdZzvReLQRRW8WIfGPiRb9HGK/6n6qg6ra2Lkr+NpgSHwlNo6IEGJtZtXVMcYWMcZOMcY6GWMqxtjgi5/bgF6vR0VFBfLz89HaOrZtzmU/lqFgawEAwDvKG7Ofmz2s42tra3HixAnU19dbdfy62E2Mqa9MhVBmrGE489EZVH9XbbXPI/al4tMLoyvCbw23XSCEkDFjboPcKgCLALhxzqWcc7tskxcIBNBoNDh16hRKS0uh1Wqt/pl6rR67Ht5lej7/H/Mhkpg3/UB7ezsKCgpw7ty5MWtucI90x5QXp5ie5/41F52VnYMcQZxB57lO1P1kHFnhGe8Jr2SaXY2Q8cDcJN/COT/Jbd3wbSaBQIDW1lbk5eWhrs66Q8ay/5NtWlku5voYxF4/dG96g8GAsrIyFBUVQa1Wj/n87oFzAhF5l3GebF2nDtnPZlP7vJOr2FZhmq8y/NZwmvGQkHHC3OwSwBj7pu/DqlFZCOccFRUVKCoqgkajsfj5tV1a7HtxHwBAIBLgur9fN+QxvTcfjY2NNl28Jf6heHgmegIAWgpaUPxWsc1iIdalU+lwbruxw53YQ4zgecE2jogQMlbMndb2TgAOOS2WQCBAZ2cnCgoKMHHiREyYYLlhKoffOIyOmg4AwJTfTIFvjO+A+/becNTX1w9rnLu1CMQCpL+UjgO/PgBdpw6nPzgNv+l+mHAZDeNxNlW7q6BtNzZdhSwMgdDVuusnEELsh1lFSc55ds++CgBCzvk+q0ZlBZxzlJeXo7S0FHq9ftTnU7eocWjtIQCAyFWE2c8P3NlOpVKhoKAADQ0NdrX0qjxUjsnPTDY9z1mVA02z5Ws8iO1wzi90uGPAxJsn2jYgQsiYMrd3/SoAz8JYml/JGHvBqlFZSW9bfUFBATo7R9fZ7ND6Q1A3qwEA0/9vOjxC+q/oqK+vR2FhoWkFOHsTMj8EoTeEAgA0jRrkv5xv8zkHiOU0n2hG26k2AEDAFQGQBkltHBEhZCyZW6xcAOBazvlqAPMAXG+1iMZA77j6kXbKUzWrcOT1IwAAiYcElz91+S/24ZyjrKwM5eXlowl1TCQ/mQxpsPHLv+aHGhpW50TKt5SbtsNvC7dZHIQQ2zA3yQtxof1eNIzj7FpFRQXKysqGXXI9+s+jpolvZvxxBmS+F48o7O7uRmFhoc0715lLJBch9YVU0/P8dflQN6htGBGxBHW9GjU/1gAA5JPk8JtOc6MTMt6Y2/HuPQBKxtgxANMAvGm9kMaOQCBAY2MjVCoVYmNjIRIN8M9RVwccOwY0N0MndUfuq8cACCGWiTHj4RkX7dre3o7S0lIYDAa7rJ4fiN9UP4TfHo7yT8qhbdUi96+5mPbqNIe6BnKxis8rwPXGG9jwW8PBBPS7JGS8MSvJc87fZoxlApgMYB3nvMiqUY0hxhhUKhXy8/MRExMDuVxufINzYNcuYPNm488m4/rbIgD3QYrTiIbm2qWQ+Vxo42xoaEBFheOu2Z7whwTU/1SPzrOdqDtQh8qdlZi4kDpqOSKD1oCzn58FAAilQlO/C0LI+GJux7s3OefFnPNtnPMixtgWawc21vR6PYqLi9HS0gLU1wM33AAsXAj873+mBN9LDhVSkIepO1YD118PNDSgqqoKZWVltgneQoSuQqSuSjX9VRT+vZCq7R1U7d5aaBqNIyVCfxUKsZvYxhERQmzB3Abj1EueO2WxgHOOsiNH0H3ddcA33wCGwWeBYwYDsGsX1Ndei/MFBQ7R/j4Un1QfRN5hnA1P26ZFwYYCG0dERqLskws3nGFLw2wYCSHElszNSt2MsVkAwBi7EoBzzoHKOSJefBEu2dnDOsw1JweRL75orOJ3ArG/jb3Q2/77Gpw/cN7GEZHhaM5vRnNuMwDAd6ovPKIdch4rQogFmJvkfw/gb4yxNgDrep47HY9Dh+CZlTWiYz2zsuA+wmPtjUgqQsrKFNPzvJfzoOvU2TAiMhx9S/ERd0TYMBJCiK2ZO+NdEef8Cs65B+d8Buc819qB2YLP7t3GKvgRYAYDfHftGnpHBzHhsgkIWRACAFCfV6PoLafpa+nU1PVq1HxvHDYnC5Uh4IoAG0dECLElc4fQOQW9Xo/Ozk50dHSgvb0d7e3tpm1DbS3+tHfvqM4v2bsXmVu3Av7+kMvl8PDwgJeXFzw9PeHq6mqhqxg7iY8lou6nOmhbtSjfWo6Q+SHwnuxt67DIIMo/LTcNm4u4PQJMSMPmCBnPHD7Ja7VaVFdXo7i4GJ2dnWhqakJjY6Pp0dTUZHqttbV1wPPMB+A2yljc1Gp8v24dvu3nPYlEYkr4np6e8PHxgZ+fHyZMmAA/Pz/Tw9PTE2Kx2C7Gp0u8JUh6LAk5q3IADuT+ORez/jcLArHjdzB0Rnq1HhWfGYdwiuQiGv5ICBk4yTPGQgEsG+DtGs75h9YJaXiCg4PR0NAw6vP4WCCWwc6j0Whw/vx5nD8/dCc2V1dXU9KfMGECJkyYAH9/f/j5+cHf39+0PRa1AyG/CkHVrirU/1yP9jPtOPO/M4i+N9rqn0uGr2p3FbStxtXmJi6aCJHc4e/hCSGjNNi3gBpA70wvdwP4H4De5dueBGAXSd7f33/QJO/i4gIfHx/4+PjA29sbHh4ecHNzg7u7O9zd3U3biRUVwL/+Nep4Ft59N6ImTUJHRwdaW1vR0tKC1tbWix4tLS3QarUDnkOtVqOyshKVlZWDfpaHh4fpJqD3RuDSbW9vbwiFI19alDGGyc9MRuatmTBoDCh5rwQh80MgDaSFTuwJ5xxlm3s63AmAiNuowx0hZJAkzzlvALAGABhjV3POTSvPMcauGoPYzLJo0SLMmDEDOp0OAQEB8PX1hY+PD3x9feHr6ws3Nzezqr6FTU3Qbt4M8SBV+kPRenoi4c47EeszeL0A5xzt7e1oaGhAfX09GhoaTI+6ujo0NTWZXlerB56Mpq2tDW1tbTh9+vTA1yUUmmoF+t4EXHpT4OY2cGOFLESGmPtiUPzvYujVehRsKMDU9VOH/gchY6bhSAPaz7QDAAJmB0AWIhviCELIeGBufZ6MMRbKOa9kjMUAsH2DcY+XXnoJ3d3dOHLkCKTSkZcu9T4+aMvIgO/u3SM+R9vMmdAPkeABY+nYw8MDHh4eiIyMvOi97u5uuLi4ADDeDHR2dqKurg51dXWmm4D6+nrU19ebthsbG2EYYFSAXq83NRMUFAw8sY1MJvvFjUBvs4C3tzc8Z3nCdYcr1FVq1O6txfmD56nnth0p+/jCsLneyYwIIcTcJP80gEOMMT0AjoHb6h1a0/z58PnuuxENo+MCARoXLLBoPIwxuLm5wc3N7Rc3A33p9Xo0NTX1ewPQ93lHR8eA5+jq6sLZs2dx9uzZAfeJRCTuxt0AgB+e+AE/xv8IDx8PeHt7w8vLy/Tw9PSEu7s7XF1d4e3tDTc3N8hkMqeYEdAedZztQN1B47LJHrEe8Em3VA8TQoijM3eBmj0AwhhjfpzzBsaYUzbItl1+OVozMuB16NCwj23NyEB7RoYVohqaUCg0lb4Ho1KpTAl/oFqB+vp66HT9T3xzBmeQj3wkIxkeOg945XshE5lmxSgQCCCXyy/qB9H3p1wuh1QqNT1kMhlcXV0hk8l+8bpUKh14xcBxqG8pPmJZhF2MzCCE2IehetfP7Od1EYCVAJKtGJdtMIZzf/kL3J96CsIjR8w+TKtQoHz1asDOv1ylUikmTZqESZMmDbiPwWBAa2urKek3NDSgpaXF9Gg+3wytUguxQYwrcAVykYsmNA14vr7n7Z2bwBLEYjGkUikkEglcXFwgkUggFotNz3tf67t96fsuLi4QiUSmh1AovOh539cA46iHS9/v+2CMQSgU9vtTIBBYJfl2t3Tj3PZzAAAXHxcEzwu2+GcQQhwX4wPMt84Yi4Oxmv5SegDfcM4/H/Ckxm+zUwB+AJDDOf/3UIFkZmbyOXPmmBPzL1iiTR4wJo74+Hi4tLWhNu06+FcdH3xKQIEAmD8f+O9/0SoWo7S0dFSfD1zcJm+vzvzvDAr/XggA8J3hi6hVUaZRA83NzWhra0NHRwdaWlqgUqlMkw5dOgnRYJ0KnVFvsh/oMdRNQu+j91yMMUxumozUJuP6USd8T6DQr9D0Xt+bit7nnPOLRlv03bd3/74/L319sO1LP2+wfwdLvGcwGMxqAhqLWIajv2NFIhFee+01xMTEjOiUIw6GOL3BetcXA7iv72uMMR/O+dDFNsALwD4Av+MD3UXYGYlEgvj4eIhEImjlnni/7RaEIAEK6UkkyCrAGhsv7OzrCyxYAPz618B11wGMwRNAbGwsSkpK4CCXPGLht4Xj3I5zaC9tR+PhRoTlhiHmml9+OQ11w6LVak2Jv6urC2q1Gl1dXVCpVFCpVBdt9z6/dB+NRoPu7m5otVrTdu9Pe/s9cM6h1+uh1+uH3tkMIoiwGIsBAN3oxu7G3VA1qixybjL2XnjhhaF3ImSYzGrYZIxlwDguXtjT+e5OzvnPgxzCAZQC+B9j7AfO+X/622nNmjUrAKwAgIiICONa7iOg1Wqh0+nQ3d097GM553B1dUVQUJCpY1rJlyXQtHfjDGLg/cDtCPm/OAhPnABrbgb39oY+NRW8t/37kiF3ISEhKC8vH7C3uznX4gjiH4/H0d8dBQAUbCiAl8LrF5OvmHMtcrkccrnc4vFxzk1/E5c++t4Y6HQ600Ov1/f7XK/XQ6PRmM450L4Gg8H06E3ofX/2fX+ghzn79968JHYmQt5h/LcrdC2E3E0OGZeBc27ap+/Pvq/399pQ24MdS0avvb19RN+BXl5eVoiGOIsBq+sv2omxQwDu5pyfZoxFA/gv5/xyM45jAA5wzq8Yal9bVNdzzuHh4YGYmJiLqtA+uekTFH9VDAB4MOdBBKYGDuu8Go0GxcXFI0rYjlBd3+vEmhM4t8PYHhx5ZyQS/5h40fuOdC1Dsbdr4XqOvUv2oquyC0zIMPfLuZAFDT023lrX0d+NxUD7jfZzevV3LUOdf6xiG+77MpkMaWlpI524iqrryYDM7aLMOeenezZKh2qPYowtAHAbADmAfkvxtmYwGODn54fw8PCLEryqSYWSb0oAAP7J/ghIGf5YcIlEgoSEBBQVFY2odsFRxD8cj9p9tdC2aVH2cRlCbwiltcvHSM3eGnRVdgEAgq4NMivBW9OlbfJjgXMOsVg8pp9pLXK5fFQzUxIyEHMHLlcxxp5njM1mjL0AYND5Vjnnuzjn93LOl3LON40+TMvS6/UIDAxERMQvhxsVfFoAg9ZY1T7515NH/MUlFouRmJgImUzmtFWaEm8J4n8fD8BYssxfm++012pPOOc4/cGFWQ6j7oqyYTSEEHtmbpL/DQBXAH/q+fkbq0VkZZxzhIWFYeLE/lfoyvtfnmk7+Y7RjRIUCoWIj4+Hl5fXiNvo7d2kmybBK8nYJtiU3YSqr6tsHJHzazrehNZCY18Qvxl+8IzztHFEhBB7ZVaS55x3APgLgPsBvAbAIeuVGGOIiopCQED/VfBtlW04e8A449ukWZPgFTb6Di2MMURHRyMwMNBivartCRMyJD+dbGoVLHy9EN1tzttEYQ9Of0ileEKIeQZN8oyxbxhj7j1PbwdwuOex39qBWZpAIEBcXBy8vb0H3Ofk5ydN28m3W3aun4kTJyI8PNwpq7O9ErwQdksYAKC7qRvF/yq2cUTOq6207aIpbP1m+Nk4IkKIPRuqJO/DOW8HAM75Js55BOc8AsDIl2obY5xzSCQSJCUlDTlUq3CbcYIXMCDh5gSLx+Lv74+YmBinnMM97ndxcPEx9nSu2FaBlpMjGw5JBle66cKES1F3R9EUtoSQQQ2VbQYaA+YQXVoNBgM8PT2RmJg45LCh9pp2nD1orKoPmxUGt8CBl14dDU9PT8THxztNr+BeLh4uSHy4ZwgdB/L+lgeud75aC1vqqOhA9ffVAABZqAxB1wTZOCJCiL0bKsmfYYzd2vcFxtj1AM5bLyTL4JwjODjY7JJz0RdFxil8ACTcYvlSfF9SqRRJSUlwc3Nzqg55IdeHwGeKcQW01sJWVO4YdBAGGabS90uBnj+X6PuiIRA5X40QIcSyhvqWeALAw4yxA4yxjYyxHwD8FcDD1g9t5BhjiIyMREhIiNnHmKrqYZ2q+ksJhULExcUhMDDQadrpGWNIfioZTGisQi75Vwk0zRobR+Ucuqq6UPWNceSCNFCK0OtDbRwRIcQRDJrkOef1AGYBeAbAtzCuPqfgnA+86LgNcc7h4uKChIQE+PiYv6Z2Z10nKvZVAAAmzpwIj5Cxm9Bl4sSJiIyMdJq2VY9oD0QsiwAA6Np1KHq9yMYROYfS90tNzR9R90ZRKZ4QYpYhvym40UHO+RbO+WHOuV2OAzMYDPDx8UFycvKwp7c9+cVJcIPxC9TaVfX98fHxQVJSEiQSiVOU6mOXx8LV3xUAcG7HOTTlmLOmERmIqlZlmj5YMkGCiQv7n+OB1Qk8BQAAFD9JREFUEEIu5RTFAYFAgNDQ0BGXiE9uuzB0LnFJ4iB7Wk/vCABvb2+Hb6cXyURIfOzCv2Pe2jwYdI59TbZ0+sPT4LqeUvzdURBKHHKaCkKIDThFkheJRMOqnu9L1aRC2d4yAEDI9BB4TrLd7GGMMQQFBSEmJsbh57EOujoIvtN9AQDtJe0o31pu24AclLpBjbNfGlvHXHxcELY4zMYREUIciVMk+dEo+abE1NYZvzjextEYeXl5ITk5GR4eHg5bqmeMIf7xeAjExj+xU2+fgrpebeOoHE/p+6UwaIx/A5G/joTQ1bFv/gghY2vcJ/lTO06ZtuNujLNhJBcTiUSIiYlx6E558olyRN1jnHZV16lD4d8LhziC9KWqVeHsZz2leG8XhC8Nt21AhBCHM66TvL5bj9LdxhnEvKO84Zdgf1OE+vr6IiUlxWEXuYm+NxqyEOMyqNXfVaPhSIONI3Icp949ZVoRMfq+aIhk5q4MTQghRuM6yVfsr4CmzTiOO3ZhrN2WmEUiEaKiohAbGwuxWOxQPfCFrkIkPZFkep63Ns+UuMjAOio6ULnTOJmQa4ArwpZQWzwhZPjGdZIv3nFhIRV7qqofiKenJyZPnoygIMeazjRgVgACrjSu/NdZ0YnT/z09xBHk1NunTH1FYh6IoR71hJARGbdJnnOOU9uN7fESTwkmXTHJxhGZhzGGkJAQpKSkONRwu6Qnkkydxkr+U4KO8g4bR2S/2k61ofq7njnqJ8poXDwhZMTGbZKvL6hHS7lxpbSYBTEQih2rpCQWixEZGYmkpCS4u7vbfbKXBckQ91tjbYlBa0DuX3JNExCRixX968IsgXEPxtHsdoSQERu33x7F2y9U1cfeGGvDSEZHJpMhNjYW8fHxdr/gTcQdEfBMNM5D0JTThIrPKmwckf1pONaAugPG9eLdo90RPC/YxhERQhzZuE3yvUPnmJAhen60jaMZPXd3d8TFxSEhIcFuS/ZMyJD6fKppAZuiN4ugqlXZOCr7wQ38omGGCf+XACawz86ghBDHMC6TfGddJyoPG3suh80Kg9R7eHPd2zM3NzfExsaapsi1t574HjEeF42dz1ubZ3cx2krlN5VoK24DAPjN8MOEmRNsHBEhxNGNyyR/+rvTprXjY26IsW0wViKTyRAZGYm0tDQEBgZCLBbbTek+5jcxkIfJAQB1B+pMnczGM51Kh+K3epqQBEDio4l2O6STEOI4xmWS750AB4BTVNUPRiQSmXrjx8TEmKbKtWXpWSgRIvX5VNPzglcKoGka3+vOn/noDNR1xml/J944ER7RY7fcMSHEeY27JM8NHKe/NY7T9gj1wITE8VMl6uXlhZiYGKSnpyM0NBRyudxmpXufNB+ELTVO8NLd3I28v43fantVrco0d4BQKjSNQiCEkNEad0m+JrsGXQ1dAICo+VHjskpUKBQiMDAQ8fHxSEtLQ3BwsKln/lgm2oT/SzBNeVu7txZVX1eN2Wfbk4INBdCr9QCM0wC7+rnaOCJCiLMYd0l+PFXVm0MsFiMoKAhxcXFQKBQICwuDl5cXhEIh9Hq9VT9bJBMhbU0a0HOflb8+f9z1tq/7qQ61e2sBAPJJckTeFWnjiAghzmTcJfnTu43VokzIEHk1faH2JRAIMGHCBERFRSEtLc00ha67uzuEQiF0Op3FP9MnzQeRdxp/D7pOHXLW5IybSXL0Gj3y1+Wbnif/KRlCF8ealIkQYt/G1bJW6hY1zmWdAwBMzJgIVy+qFh2MVCqFVHpheKFarUZrays6OzuhUqmgUqlgMBggFI4uMcX9Ng71P9Wj/XQ7Go82onxrOSJujxht+Hbv9Ien0VVpbDoKujoIEy4bP/1DCCFjY1wl+TM/nDEt+hE1P8rG0TgeV1dXuLpeuDHinKOzsxMdHR1QqVRQq9XQaDTQaDQQCMyvJBJKhEh7MQ0H7zkIruM4+cZJ+E71deoe5h3lHSjdZGw6EkqFSHw00cYREUKc0bhK8r296gH8f3v3Hxx1fedx/PnebBISkoDyI4CBGLGxoiInCg6iUlFBR/EnMjiIHTtwdcrUud54197NHUSvc+3o9aYzylirSGkcBqsi6h9YwYb4oxVy/sKjwCkIBAIRJCYk5sdmP/fHZrcQw69slu/uJ6/HzA67m939vj/D7r728/18v58P58/QeHyyzIyCggIKCgqOub+zs5OmpiYOHTpEOBymvb2dtrY22tvbE7v8u/f+B10wiPKF5Wxbuo1oW5QPfvYBU1dMJZzn31vUdTo+fuRjom2xMxvKF5STN8KfCZlEJH349w16HM65xEF3+UPzGXlZZi3XmkmysrIYPHgwQOLfuGg0SmtrKy0tLbS3t9PR0UEkEqGjo4NxC8ZxaOMhDtYc5MjOI2z+5WYmLJ7g3RkQO1ft5PAnhwEYNG4QZff6PzQhIsFIWcibWTawCtjunPtpqrZzqg5uPUjjntiUoWNnjNWc4AEJhULk5+eTn5/f49/LXi3jNxN+Q3N9M3tf38u4m8dx/l3nE4lE6OzsJBKJEI1G6ezsPOZ2/L74ef/RaJRQKISZJS7poHlPM1ufjK0yF8oOMWHxBK0yJyIpk8qe/BKgCkiLZbR2rt+ZuH7eDTqqPl0Vjizkjso7qJxRCQ6qHq6i/HvljPruqb2NnHOJwI9EIolL/AdAfC6A+OPit4++v/vt+A+HnJycxDZOdIk/pntdrtPxUcVHid30Yx8YS15pHpFIpMcfId3vO9ltEZHuUhLyZjYdqAX+yglCvqKiYiGwEKCsrIyGhoZeb7OpqemEf9++dnvi+pDLhyS1rVQ6WTsySW/bMuSKIVzxD1ew6Veb6GjuYOXtK7nnj/eQW5Tbq9cLhUKndSBgT5qamigsLDyt53QP/Zpf1XD4o9hu+mHjh3Hdv19HVnZW4kdE/LHdb/f046GnSYt6+mHRXUtLyzFnTBzvcacj/nwzO6XX6v6Y7s/r6XZPz2ttbSUvL++kr5cJnHO9/k7qPiQmcjRLxYfBzB4DcokFfClwu3PuhNOZVVVVuWnTpvV6mw0NDcd9s0c7ozw29DFaG1oZUj6ERdsW9Xo7qXaidmSaZNoSjURZMX0Fu6pja85fMOsC5qyeE9gwS7L/L3ve28Nz1zyH63SEB4RZsGkBwy8e3ocVnhq9v9JTkm3RLh05rpQMBjrnHnbO/Rh4Alh/soBPtboP6mhtiC3+UTZdBzllglA4xN0v3E1RSew0um2vbqOqoirYonqptaGVl+59KXH65oz/nhFIwItI/5PSI36cc1XpcNDd0ePxCvnMUVBcwJxX5hAeEBtVqn6kmi0vbgm4qtPjoo5Xvv8KX+/6GoAL77yQiX8/MeCqRKS/6BeH9e58qyvkDc6ddm6gtcjpGTVxFLOenZW4vfq+1ex+Z3eAFZ2eDY9uYNua2DrxRaOLuPW3t+qAORE5Y7wP+UhbJBEKIyaMIH9Iz6duSfq65N5LuOqnVwEQaY2w8taVfLnly4CrOrmta7ayYckGAMIDwsxZPYe8szXpjYicOd6HfO2fa4l8E5tlTbvqM9f0n09n/LzxQGyMu3JmJY21jQFXdXx1H9axet7qxO1bnr6FURPT4mxSEelHvA/5Het3JK5r1bnMZSFj1rOzGHtjbM2Bxj2N/P6G33Nk/5GAK/u2wzsO8/xNz9N+pB2AyQ9N5tL7Lg24KhHpj7wP+S/e+gKIHa09ZuqYYIuRpGTlZDH7xdmMnBibkvjg1oP87nu/S6ugb65vpnJGJc0HmoHYqX83Pn5jwFWJSH/ldci3NbWxd2Ps7L2SK0vIKcgJuCJJVm5hLvPWzqN4fDHwt6Bv3Bv8rvvm+mZWXL+Crz77CoDRU0Zz18q7NG2tiATG62+fXdW7iEZis4dpPN4f+UPzmb9+/jFB/+yVz1L/v/WB1dS0r4nl1y6nfnOshmHjhjH3tblk52cHVpOIiNchr/Pj/RUP+vhqgo21jSy7ahlfVH1xxmv56rOvWH7tcg5uPQjA8IuHM/+t+TqSXkQC53XIx7/ws/OzKZlcEmwx0ufyh+Zzf9X9jJ0ROxiv7es2Vly/gvcef++MzV2+q3oXz0x+JrGLfsSEEdz/p/spKC44I9sXETkRb0O+9etW9n+0H4iNjWblZAVckaRCbmEuc1+by4TvTwDAdTrefPhNXrjrBVoOtqRsuy7qePexd1kxfQXffPUNAGOmjmH++vnkD9VcDCKSHrwN+d3v7IauztyYa3RUvc+ysrOYtWwWNz1xE6Hs2Ft66+qtPDnuSTav3NznvfrDOw9TObOSdf+0LnHMx6XzL+W+dfdpF72IpBVvQz6+ehlA6TWlAVYiZ4KZMelHk3jgnQcYVDoIgJYvW3j53pepvLGSfTX7kt5Ge3M71T+vZulFS9nxZmz+haycLGb+eia3Lb+NcG5KVm4WEek1b7+VdlfHprLNysnSeHw/cs6kc3hw84Os/9l6Nj25CYAd63awY90Oym8p54pFVzD2hrGntWRtc30zNUtr+HDph7R8+bchgKEXDuXO5+9k5N+N7PN2iIj0BS9Dvr25PdFzO2fyOYlVzKR/yC3M5eYnbubiuRez9sdrqfugDoDtr29n++vbKSoponxWOeddfx6jJo6iaHTRMYvGdHzTwaHth9hVvYvP3/icz9/4PLFbHiCcF+aaf7uGKf84Rcd6iEha8zL9av9cm/hS1q76/mvMVWNYsGkBW17awtv/8TYHPjkAxE63q1laQ83SGgBC2SEGDhuIZRmR1sgxvfWjhQeEuWzhZUz956kUjio8Y+0QEektL0Ne4/ESZyHjotkXMe7ucex+ZzcfPvMh217bRuvh1sRjoh1RmvY1Hfc1iscXU35POZMXTGbg8IFnomwRkT7hdchbljF6yuiAq5F0YGaUXl1K6dWlRCNRav9Sy95Neznw0QGa9jXRXN+MizrCA8IUjCjg7O+czYgJIyi7royikiIaGhoYOFgBLyKZxbuQj7RFqP1LLQCjJo7SfPXyLfHFirRgkYj4zrtT6PZu3EtnWyeg8+NFRKR/8y7kNR4vIiIS413Ix8+Px9DuWBER6de8CvloJMrud2MhXzy+mLyzNMWoiIj0X16FfN0HdXQ0dwDaVS8iIuJVyMd78QBjrtauehER6d+8Cvk97+5JXB9zlUJeRET6N29C3jmXCPlBpYM07aiIiPR73oR84+5Gjuw/AqgXLyIiAh6FfN37dYnrJVO0tKyIiIg3Ib/v/X2J6+rJi4iIeBTydRtjPfmcghyGXzw84GpERESC50XItzW2cWjLIQBKriwhFPaiWSIiIklJSRqa2SQzW2Zma8xsZiq2cbTa92txUQdoPF5ERCQuJUvNOuc2AhvN7HLgB8DaVGwnbs97Oj9eRESku5StJ29ms4HFwEPHe0xFRcVCYCFAWVkZDQ0NvdrWzg07uzYKBRcU9Pp10kFTU1PQJfQZtSX9+NIOUFviBg8e3IeViG9SFvLOuT+Y2atAFbC+p8csXrz4aeBpgKqqKtebN2u0M8r+mv0AFF9STHFpcW9LThs+fWjVlvTjSztAbRE5mZSEvJndBtwB5AOrUrGNuPpP62lvagc0Hi8iInK0VI3JrwHWpOK1u9N4vIiISM8y/lyzoxelGT1ldICViIiIpJfMD/munnx+cT6DyzSmJSIiEpfRIR9pjTDkO0PILcpl5KSRmFnQJYmIiKSNlB1dfyaEB4SZ98Y8op1R6nfXB12OiIhIWsnonnxcKCvEgLMGBF2GiIhIWvEi5EVEROTbFPIiIiKeUsiLiIh4SiEvIiLiKYW8iIiIpxTyIiIinjLnXNA1AFBRUfEMUJvES0wE/qePygmSL+0AtSUd+dIOUFvivli8ePHyPqxFfOKc8+KyZMmSmqBrUDvUlnS/+NIOtUUXXU7tot31IiIinlLIi4iIeMqnkH866AL6iC/tALUlHfnSDlBbRE4qbQ68ExERkb7lU09eREREjqKQFxER8ZRCXkRExFMKeREREU8p5EVERDyV8SFvZkPN7EUzW2VmPwy6nmRYzO1mdsDMBgRdT2+Z2bVmVmlmr5vZ/KDrSYaZTTKzZWa2xsxmBl1PMsws28xeNrNfBF1LMro+J/9nZk9l+mcewMyuNrNHzGxR0LWIfzI+5IEFwHPOuTnAXDMLB11QEgqBXGBb0IUkqdo5Nw/4IXB70MUkwzm30Tn3APAocFvQ9SRpCVAVcA19YTCwAXjQOfdU0MUkw8xKgF8CZwNHAi5HPORDyJcCu7qufwkMDbCWpDjnGp1zq4Bo0LUkwznnzCwP+E+gIuh6kmVms4HlwIsBl9JrZjad2AJQnwRdSx9wwGfA82b2g6CLSdK1wH855xYB88zsrKALEr9kcq83bhexoP8UGAYcDLYcMbNsYqH4qHPu04DLSZpz7g9m9iqxXvD6gMvprZnE9hJNB0rN7Bzn3N6Aa+oV51wD8AszM+Bt4NmAS0rWuV3/tgJZAdYhHvIh5J8BnjKz+4FVzrlI0AUJs4n98FpkZi3OuZ8EXVBvmdltwB1APrAq4HJ6zTn3MICZTQNmZmrAA5jZTcAcYCCZH/CrgRVm9lugxjmnTor0KU1rKyIi4ikfxuRFRESkBwp5ERERTynkRUREPKWQFxER8ZRCXuQ4zOweM6vuOlULM/tXM1sWdF0iIqdKR9eLnICZvQBUA+uA14DLnXNfB1uViMipUciLnICZDQXeBxqAf3HOvRFwSSIip0y760VOoGtykveBMcC7AZcjInJaFPIiJ9A15/t3gWXA4wGXIyJyWrS7XuQ4upb7/Ri4B/grUAP8yDn3dqCFiYicIvXkRY7vJ8Ba59zHzrl24CHg12amz42IZAT15EVERDylHomIiIinFPIiIiKeUsiLiIh4SiEvIiLiKYW8iIiIpxTyIiIinlLIi4iIeEohLyIi4qn/B2XdcfHvli5+AAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "train_X = np.atleast_2d([0.5]).T\n",
    "train_y = f(train_X).flatten()\n",
    "gp = gp_creator(train_X, train_y)\n",
    "# gp.fit(train_X, train_y)\n",
    "# gp.optimize()\n",
    "# y_pred, sigma = [t.flatten() for t in gp.predict(x)]\n",
    "\n",
    "y_pred, var = [t.flatten() for t in gp.predict(x)]\n",
    "sigma = np.sqrt(var).squeeze()\n",
    "        \n",
    "plt.plot(x, y_pred, 'k', label=r'Predicted ($\\mu$)')\n",
    "plt.plot(x, f(x), 'purple', label=r'Ground Truth ($f$)')\n",
    "plt.xlabel(\"X\")\n",
    "plt.title(\"Posterior\")\n",
    "plt.ylabel(\"Gold content\")\n",
    "plt.fill_between(x.flatten(), y_pred+sigma, y_pred-sigma, color='gray', alpha=alpha_plt, label=r'$\\mu \\pm \\sigma$')\n",
    "plt.scatter(train_X, train_y, color='red', s=300, zorder=10, label='Training Point')\n",
    "plt.legend(bbox_to_anchor=(1.04,1), loc=\"upper left\")\n",
    "format_axes(plt.gca())\n",
    "# plt.savefig('MAB_gifs/posterior.svg', bbox_inches=\"tight\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Creating some samples"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# for i in range(4):\n",
    "#     y_pred, sigma = [t.flatten() for t in gp.predict(x)]\n",
    "#     plt.plot(x, y_pred, label=f'Sample {i}')\n",
    "np.random.seed(0)\n",
    "testX = x\n",
    "samples = 3\n",
    "posteriorTestY = gp.posterior_samples_f(testX, full_cov=True, size=samples)\n",
    "simY, var = gp.predict(testX)\n",
    "simMse = np.sqrt(var).squeeze()\n",
    "\n",
    "posteriorTestY = posteriorTestY.reshape((posteriorTestY.shape[0], samples))\n",
    "for i in range(samples):\n",
    "    plt.plot(testX, posteriorTestY[:, i], label=f\"Sample {i+1}\")\n",
    "plt.fill_between(\n",
    "    testX.flatten(), \n",
    "    simY.flatten() + 3 * simMse.flatten() ** 0.5, \n",
    "    simY.flatten() - 3 * simMse.flatten() ** 0.5, \n",
    "    alpha=.15, color='grey', linestyle= '--', \n",
    "    label = r\"$\\mu \\pm \\sigma$\"\n",
    ")\n",
    "plt.plot(testX, simY, 'k', linestyle='-.', label=\"Posterior Mean\")\n",
    "plt.scatter(train_X, train_y, color='k', s=200, zorder=10, label='Training Point')\n",
    "plt.xlabel(\"X\")\n",
    "plt.title(\"Samples from Surrogate Posterior\")\n",
    "plt.ylabel(\"Gold content\")\n",
    "plt.legend(bbox_to_anchor=(1.04,1), loc=\"upper left\")\n",
    "format_axes(plt.gca())\n",
    "plt.savefig('MAB_gifs/thompson.svg', bbox_inches=\"tight\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Below we can see that this choice of `lam = 5` is still a little smaller than we like (we would like to see that we get to exploit the location where the gold is the most.).\n",
    "\n",
    "![](MAB_gifs/mab-gp-5.gif)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
